package com.cloud.pay.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;

/**
 * 预支付单
 */
@Data
public class PayParamDTO {
    /**
     * 应用ID（长度不能超过32）
     */
    @NotEmpty(message = "应用ID不能为空")
    @Length(max = 32, message = "应用ID（长度不能超过32）")
    private String appId;

    /**
     * 用户ID（长度不能超过32）
     */
    @NotEmpty(message = "用户ID不能为空")
    @Length(max = 32, message = "用户ID（长度不能超过32）")
    private String userId;

    /**
     * 订单号（长度不能超过32）
     */
    @NotEmpty(message = "订单号不能为空")
    @Length(max = 32, message = "订单号（长度不能超过32）")
    private String orderNo;

    /**
     * 支付标题（长度不能超过32）
     */
    @NotEmpty(message = "支付标题不能为空")
    @Length(max = 32, message = "支付标题（长度不能超过32）")
    private String payTitle;

    /**
     * 支付渠道（微信1，支付宝2）
     */
    @NotEmpty(message = "支付渠道不能为空")
    @Range(min = 1, max = 2, message = "支付渠道（微信1，支付宝2）")
    private Integer payChannel;

    /**
     * 支付金额（单位为分，1~10000000之间）
     */
    @NotEmpty(message = "支付金额不能为空")
    @Range(min = 1, max = 10000000, message = "支付金额（单位为分，1~10000000之间）")
    private Integer payMoney;

    /**
     * 交易类型（扫码支付1，JSAPI支付2，APP支付3）
     */
    @NotEmpty(message = "交易类型不能为空")
    @Range(min = 1, max = 3, message = "交易类型（扫码支付1，JSAPI支付2，APP支付3）")
    private Integer tradeType;
}
